package com.cv.platform.controller.platform.video.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 视频平台 - 视频展示 Response VO
 *
 * @author Charles_XDXD
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Tag(name = "视频平台 - 视频展示 Response VO")
public class CvVideoItemRespVO {

    /**
     * 视频编号
     */
    @Schema(description = "视频编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    private Long id;

    /**
     * 作者编号
     */
    @Schema(description = "作者编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    private Long userId;

    /**
     * 作者昵称
     */
    @Schema(description = "作者昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "作者昵称")
    private String nickname;

    /**
     * 视频封面
     */
    @Schema(description = "视频封面", requiredMode = Schema.RequiredMode.REQUIRED, example = "视频封面")
    private Long thumbnail;

    /**
     * 视频封面 URL
     */
    @Schema(description = "视频封面 URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "视频封面 URL")
    private String thumbnailUrl;

    /**
     * 视频标题
     */
    @Schema(description = "视频标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "视频标题")
    private String title;

    /**
     * 视频类型
     */
    @Schema(description = "视频类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "视频类型")
    private String type;

    /**
     * 视频播放量
     */
    @Schema(description = "视频播放量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    private Integer viewCount;

    /**
     * 是否可见
     */
    @Schema(description = "是否可见", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    private Integer isVisible;

    /**
     * 视频审核状态
     */
    @Schema(description = "视频审核状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    private String status;

    /**
     * 发布时间
     */
    @Schema(description = "发布时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime publishTime;

}
